The need to store digital files, documents, pictures, images and other data continues to increase rapidly. In connection with the electronic storage of data, systems incorporating more than one storage device have been devised. In general, using a number of storage devices in a coordinated fashion in order to store data can increase the total storage volume of the system. In addition, data can be distributed across the multiple storage devices such that data will not be irretrievably lost if one of the storage devices (or in some cases more than one storage device) fails. An additional advantage that can be achieved by coordinating the operation of a number of individual storage devices is improved data access time and/or data transfer rate. Examples of systems that can provide such benefits can be found in the various RAID (redundant array of independent disks) levels that have been developed.
Where a data storage system incorporates a number of physical storage devices, additional capacity can be added by adding additional physical storage devices. However, integrating the additional storage provided by adding an additional storage device has been problematic. For example, the data strips available on the added storage device unit could simply be appended to the preexisting data storage device units by numbering the newly added strips in sequence, without integrating the addressing with the pattern established on the original or preexisting data storage device units. As a result the logical addresses associated with the strips of data storage provided by the new storage device will usually fail to conform to the pattern of data distribution established on the pre-existing data storage devices. Because the data is no longer striped across the individual storage devices in the desired pattern, the performance of the storage device is adversely affected. Also, in a data storage system that stores parity information, new parity information will typically need to be generated after a new data storage device is added to the system.
In order to add additional storage devices to a RAID array, while preserving the performance of the array, the distribution of data can be reordered so that the data is striped across all of the physical storage devices in the desired pattern. This requires that the availability of the added storage capacity be delayed until after the desired distribution of data across all of the physical storage device units of the expanded virtual storage device has been completed. However, because such re-striping of a data storage system involves moving most of the data in the data storage system to a new location, the process is extremely time-consuming. Moreover, this can have a significant impact on the end user, as access to the newly-added storage is not available until the re-striping operation has been completed.